// 导入express
var express = require('express');
// 模块化
var router = express.Router();
//导入formidable
const formidable = require('formidable')
//导入shortid
const shortid = require('shortid')
//导入lowdb
const low = require('lowdb');
const FileSync = require('lowdb/adapters/FileSync');
// 实例化 db.json 对象FileSync('路径');
const adapter = new FileSync(__dirname + '/../public/database/db.json');//保存的数据在 db.json 中
// 获取db对象
const db = low(adapter);


/* 添加账本的GET路由表单 */
// 获取get请求的主页index  (新增页面)
router.get('/', function (req, res, next) {
    res.render('index', {title: '添加信息'});
});
//获取get请求的添加成功页面success (成功提示页面)
router.get('/success', function (req, res, next) {
    res.render('success', {title: '添加信息成功!!', url: '/record'});
});
//获取get请求的查询页面record    (查看添加记录页面)
router.get('/record', function (req, res, next) {
    //获取db.json文件中的accounts数组的值
    let accounts = db.get('accounts').value();
    res.render('record', {title: '信息查询', accounts: accounts});
});
//获取post请求的成功添加页面success   (新增记录)
router.post('/success', function (req, res, next) {
    // 创建form对象
    let form = formidable({
        multiples: true,
    });
    //解析请求体报文 (获取form输入的内容)
    form.parse(req, (err, fields, files) => {
        if (err) {
            next(err);
            return;
        }
        // 生成id
        let id = shortid.generate();
        // 写入文件   向db.json文件中插入fields信息
        db.get('accounts').unshift({id: id, ...fields}).write();
    });
    res.render('success', {title: '信息添加成功', url: '/record'});
});

//删除添加的记录
router.get('/record/:id',(req, res) => {
    // 获取请求的id参数
    let id=req.params.id;
    // 删除
    db.get('accounts').remove({id: id}).write();
    //提醒删除成功
    //获取db.json文件中的accounts数组的值
    let accounts = db.get('accounts').value();
    res.render('record', {title: '信息查询', accounts: accounts});
})


// 暴漏模块
module.exports = router;